OS를 구성하는 시스템

2020-07-06
  • OS

    • system

      • FS : NTFS, FAT33, exFAT
      • 프로세스, 스케줄러: 프로세스 시스템

        • 프로세스 : 실행중인 프로그램(의 일부)
        • 하드디스크, 저장장치에 존재하는 프로그램을 FS을 통해 불러옴

          • 실행파일 형식 execute file format

            • PE, ELF, COFF, MACH-O
            • 실행파일 포맷 = 프로세스 관리 시스템

              • 운영체제에게 요청하는 내용 있어야 함
              • 메모리 용량, 자원(장치, 드라이버, 인터럽트), 접근권한(ACL)
              • 위 내용을 관리하는 프로세스 관리 시스템이 제일 중요
      • 메모리 관리 시스템

        • 스레드, 멀티코어 프로그래밍
        • Memory Address Space
      • 파일시스템

        • 플래시 메모리는 1~3년 정도 읽기, 쓰기 없으면 휘발됨
        • 하드디스크도 섹터 소실됨
      • 장치 관리 시스템

        • 드라이버는 HW를 제어하기 위한 SW

          • HW 제작사가 제작해서 제공
        • 드라이버 등록시 메모리 주소, 메모리 공간, IRQ 번호
        • Active 장치 : IRQ 번호를 받음 = 인터럽트 사용

          • HDD : Active 장치 → ATA 버스 컨트롤러, SAS 버스 컨트롤러, 플래시 메모리

            • 메모리 버스 컨트롤러 : 메모리에 버스별로 제어 신호를 보냄
            • 컨트롤러 탑재되어 IRQ 번호도 할당됨
            • 버스 프로토콜을 이용하여 CPU와 통신하고, 제어, 협상하기 때문에 Active
            • 오류 메시지는 다양한 경로로부터 올 수 있다.

              • HW, SW 등등
        • Passive 장치 : IRQ 번호 받지 않음

          • USB 카메라 : 패시브 장치

            • 메모리 버스를 사용하는 경우 대부분 패시브 장치
          • CPU와 APIC(←컨트롤러) : CPU는 인터럽트를 걸기도 하고, 걸리기도 한다.
          • 에러, 예외 등 인터럽트가 필요한 경우 CPU 드라이버가 주기적으로 검사하여 처리한다.

            • 예외처리가 된다!
      • 네트워크 관리 시스템 : 최근 OS에 포함되는 시스템에서 빼기도 함

        • TCP/IP
      • 권한, 계정, 보안 관리 시스템
      • 6가지 시스템이 존재

        • 이용하여 프로그래밍하는 것을 시스템 프로그래밍
        • C언어 : 커널이 아직 C언어로 만들어짐

          • C언어 창시자 : Dennis Ritchie, Ken Thomson
          • 처음 포터블 어셈블러 개념으로 개발

            • 명령어 체계와 독립적인 프로그래밍 언어

              • 어떤 명령어 체계든지 C로 표현 가능
      • LLVM : https://ko.wikipedia.org/wiki/LLVM